package Jets.shapes
{
	import flash.display.Graphics;
	import flash.display.Shape;
	
	public class JSector extends Shape
	{
		private var ms_color:uint;
		/**
		 * 画扇形  ，扇形的原点是圆心位置
		 * @param radis 扇形的半径
		 * @param angle 扇形的夹角
		 * @param startFrom 扇形开始的角度方向，默认是0 
		 * @param color 填充颜色
		 * @param line 线条宽度 
		 * @param linecolor 线条颜色
		 */
		public function JSector(radis:Number=100,angle:Number=30,startFrom:Number=0,color:Number=0xff0000,line:int=0,lineColor:uint=0)
		{
			super();
			ms_color = color;
			DrawSector(this.graphics,radis,angle,startFrom,color,line,lineColor);
		}
		
		public function get color():uint
		{
			return ms_color;
		}
		/**
		 * 画扇形
		 * @param g Graphics对象
		 * @param radis 扇形的半径
		 * @param angle 扇形的夹角
		 * @param startFrom 扇形开始的角度方向，默认是0 
		 * @param color 填充颜色
		 * @param line 线条宽度 
		 * @param linecolor 线条颜色
		 */
		static public function DrawSector(g:Graphics,radis:Number=100,angle:Number=30,startFrom:Number=0,color:Number=0xff0000,line:int=0,lineColor:uint=0):void
		{
			g.beginFill(color,50);
			if(line)
			{
				g.lineStyle(line,lineColor);
			}
			g.moveTo(0,0);
			angle=(Math.abs(angle)>360)?360:angle;
			var n:Number=Math.ceil(Math.abs(angle)/45);
			var angleA:Number=angle/n;
			angleA=angleA*Math.PI/180;
			startFrom=startFrom*Math.PI/180;
			g.lineTo(radis*Math.cos(startFrom),radis*Math.sin(startFrom));
			for (var i:int =1; i<=n; i++) 
			{
				startFrom+=angleA;
				var angleMid:Number=startFrom-angleA/2;
				var bx:Number=radis/Math.cos(angleA/2)*Math.cos(angleMid);
				var by:Number=radis/Math.cos(angleA/2)*Math.sin(angleMid);
				var cx:Number=radis*Math.cos(startFrom);
				var cy:Number=radis*Math.sin(startFrom);
				g.curveTo(bx,by,cx,cy);
			}
			if (angle!=360) 
			{
				g.lineTo(0,0);
			}
			g.endFill();
		}
	}
}